package com.foreknow.demo17;

/**
 * 笔试以及面试会问到大家这些基本的概念
 * 1.final:表示最終的，可以修饰类、属性以及方法，表示最终的含义
 * 2.一个类被final修饰了，表示这个类不能拥有任何子类，不能被其它类继承
 * 3.一个属性或变量被final修饰，它可以表示为一个常量，初始化之后就不能修改它的值了。
 * 4.一个方法被final修饰，表示这个方法不能被子类重写  public final void test(){}
 *
 * 一般来说我们的定义的常量都:public static final int count = 0;
 * 规范：常量名都用大写
 *
 *  面试题
 *  * 是否可以同时使用final和abstract修饰一个类？
 *  * 不可以的
 *  * final是为了阻止一个类被继承的
 *  * abstract是要求一个类被继承的
 *  * 两者有冲突
 *
 *  面试题
 *  final  finally  finalize的区别：
 *  final 可以修饰类，变量，方法，修饰类表示该类不能被承继、修饰方法不能被重写，修饰变量只能赋值一次
 *  finally try....catch中的语法，一般来说用于存放一些关闭资源的代码
 *  finalize 垃圾回收机制： 它是Object中的方法 当我们调用System.gc()方法的时候 ，
 *       由垃圾回收器调用finalize（）方法，回收垃圾。（了解就可以）
 *
 */
public class FinalDemo {
    public int num;
    public final int count = 0;//一定要初始化

    public static final String STATUS_CODE = "1001";

    public static void main(String[] args) {
        FinalDemo finalDemo = new FinalDemo();
        finalDemo.num = 15;
        //    finalDemo.count = 15;初始化之后就不能修改它的值了
    }
}